#if !defined(_HEAD_H)
#define _HEAD_H


#include <string>

#define NULL 0
#define foreach(iter, container) for ((iter) = (container).begin(); (iter) != (container).end(); (iter)++)
#define SafeDelete(t) if(t) delete t
#define Safedrop(t) if(t)t->drop()
#define SafeDrop(t) if(t)t->Drop()
#define DynamicCast(target,Source) dynamic_cast<target>(Source);

typedef unsigned int s16;
typedef unsigned int u16;
typedef long s32;
typedef unsigned long u32;

typedef std::string IdType;
typedef  char* Str;


enum SceneType{
	SCENE_ERROR=0,
	SCENE_LOGIN,
	SCENE_GAME
};

enum EventType{
	EVENT_ERROR=0,
	EVENT_INITIALIZE_SUCCEED,
	EVENT_INITIALIZE_FAILD,
	EVENT_INITIALIZE,
	EVENT_PLAYER_LOGIN,
	EVENT_LOGIN,
		
	EVENT_GAMELOGIC_SCENE_CHANGED,

	EVENT_MOUSE_MOVE,
	EVENT_MOUSE_CLICK,
	
	EVENT_SCENE_CHANGED,
	EVENT_SYSTEM_SHUTDOWN,
	EVENT_INPUT_KEYBOARD
};
enum RequestType{
	REQUEST_PAST=0,
};
#endif  //_HEAD_H